1. Field Of The Invention
The present invention relates generally to video displays, and more particularly to display systems in which an image is displayed to enable a user to recognize distinct features. Specifically, the present invention is directed to the problem of correlating the features of a displayed image with information which further identifies or describes the features.
2. Description Of The Related Art
Systems for providing high-quality digital images on video display screens are well known. The most common is known as a bit mapped raster scan display system. Such a system includes a memory which stores a set of bits corresponding to each pixel location on the display screen, and the information in the memory is read out and displayed in synchronism with the raster scan. The memory including the set of bits for the pixels is known as the pixel bit map.
For displaying high quality images having a variety of gray shades or colors, the set of bits for each pixel may specify the gray shade or color of the pixel. About 24 bits of resolution--eight bits for each of three primary colors--are required for reproducing the entire spectrum of chromatocity and luminance within the resolving ability of the human visual system. In order to reduce the memory requirements for obtaining high color resolution, it is well known to provide a color look-up table or "color map" which is indexed by the set of bits for each pixel. In this case the color map need store only once each color that is actually found in the image being displayed.
The use of a color map has many advantages in addition to the reduction of the memory requirements for the pixel bit map. As described in Hill U.S. Pat. No. 4,200,867, the color map can be used as a palette allowing the video display user to electronically compose or "paint" video images. For mass storage of digital images or band limited transmission between video systems, the color map can be used to reduce the required bit transmission rate and bit storage capacity. In this regard, the color map can also be used in connection with other data compression techniques, such as in the color block coding scheme disclosed in Campbell et al., U.S. Pat. No. 4,580,134.
The use of a color map further permits all pixels having the color identified by a single index to be modified simultaneously without disturbing the pixel bit map. The modification can be done for one color at a time by storing the color map in a read-write or random access memory, and writing a new color value to the memory address corresponding to the index of the color to be changed. Fleming et al. U.S. Pat. No. 4,439,759, for example, describes the use of a data processor for providing color blinking by means of a linked list of multiple processes. For example, using this technique a ball may appear to bounce across an image, a river may appear to flow, or stars may appear to twinkle.
As described further in Brown et al. U.S. Pat. No. 4,484,187, it is possible to change all of the colors simultaneously by using a color map having a plurality of segments for the range of indices specified by the pixel bit map, and by using a data processor to select which segment is to be addressed by the pixel bit map. In other words, the data processor substitutes one color map segment for another color map segment in order to change simultaneously a plurality of colors. The memory capacity of the color map must be increased in this case, but in practice the substitution is easily performed by using a memory circuit having at least one additional address select line which receives an output of the data processor instead of the pixel bit map. Brown et al. also discloses that the substitution of one properly programmed color map segment for another can instantly provide different priority for various images stored in different planes of bit map memory.
In order to display moving objects which may obscure a background or obscure each other, it is common to provide a bit map memory which has, for each pixel, a respective set of bits for each object or the background. Each set of respective bits is stored in a respective "bit plane" for the bit map memory. The respective sets of bits for each pixel are compared to each other in a priority decoder which has an output which controls the select input of a multiplexer which selects one of the sets of bits for display. The priority decoder, for example, operates the multiplexer to select the set of bits which represents the largest binary number, or selects the set of bits which represents a non-zero binary number from the bit plane assigned the highest priority. In the latter case, the binary number zero represents a transparent area in the bit plane. See, for example, Ciarcia, "High-Resolution Sprite-Oriented Color Graphics," Byte, August 1982, pp. 57-80.
The priority of an object can also be encoded as an attribute separate from the color map index. Peterson U.S. Pat. No. 4,675,666, for example, describes a video display system in which a user can display "true" objects by individual pixels in a "bit-plane mode," or fixed objects in a "list mode." The fixed objects in a list mode are defined in "image tables" which contain their pixel-by-pixel description. A list mode screen memory is arranged as a "display list" of pointers to entries in the image tables, which include "attributes" of the images. These attributes allow each individual occurrence of an image to be altered, for example, by underlining or flashing. By using a suitable attribute list and a suitable priority decoding circuit, Peterson says that the color of a "true" object overlapping a fixed object of lesser priority may be modified such that it appears that the true object has entered the shadow of the fixed object.
Brown et al. U.S. Pat. No. 4,484,187 discloses that the priority decoding function can be fully programmable by providing a unique color map address for each combination of bits from the respective sets of bits from the various bit map planes. Specifically, the output from the memory for one bit plane is used as one portion of the color map address and the output from the memory for another bit plane is used as another portion of the color map address. Therefore, the collisions or overlap between objects in different bit planes provide unique color map addresses, and the color map can be programmed at these addresses to provide any desired color for the points of collisions or overlap. FIG. 6 in Brown et al. shows ranges of color map addresses assigned to respective objects in a specific example.
A color map display system allowing rapid shifting of subpictures and rapid changing of the subpictures or the overall picture (such as having invisible information suddenly appear on the display screen) is described in Allen et al. U.S. Pat. No. 4,570,217. As described in Col. 4, line 50 to Col. 5, line 17, the screen is broken down into a plurality of zones, each zone providing up to sixteen different colors selectable for each pixel in the zone. The 16 colors from each zone are selected from one of four color palettes. Each color palette in turn selects its colors from up to 512 separate colors. Typically, a zone comprises eighty pixels of graphic information and thus each of those eighty pixels can be selected to have any one of the zone colors. It is said that by use of the color palette technique in association with each of the plurality of zones, the graphics can present complicated displays. Also, a high level graphics language is described for facilitating the design and configuration of a process control system. The graphics language has static and dynamic commands for facilitating graphics display update on a real time basis.
The ability to recognize colors in a real-world digital video image is important for geological and agricultural assessments, military reconnaissance, city planning and land use, and coastal oceanography. Dalke et al. U.S. Pat. No. 4,488,245 discloses a computer and video display system which is said to be suitable for such color recognition applications. The color picture is digitized and represented as three eight-bit words for each pixel in a 1024.times.1024 pixel array image. The first value is an approximation of luminance, while the second and third values represent variations of chromaticity or chrominance. Pattern recognition techniques are used to determine if a given color value lies within a specified three-dimensional color subspace. A high-speed digital processing technique is said to enable the real time modification of any portion of the color image within the display. A weighting function is disclosed to enable the operator to modify or insert colors.
In Col. 15 lines 12-21, it is said that in operation a threshold circuit is used to generate a mask to enable the operator to determine if, in fact, a color selection circuit has correctly identified all of the objects having the targeted colors; the mask is automatically superimposed over all of the areas on the color display having the same color value as the pixels selected during the sampling process. In Col. 15, lines 55 to 58, it is said that if desired, additional circuitry may be incorporated in the data processing unit to enable the operator to identify certain areas by their physical coordinates using a cursor, and a light pen or stylus.
In simulation programs using the techniques of artificial intelligence, it has become common to provide a user interface which displays a schematic diagram of a system under consideration, and which permits the user to graphically select or modify components of the schematic diagram by manipulating a pointing device. Further, upon such selection or modification, certain textual attributes of the object will be automatically modified if necessary and displayed in a window area adjacent to the schematic diagram. In such programs, the coordinates of the cursor are compared to coordinates defined for the components of the schematic diagram, in order to determine whether the user has selected a component. See, for example, Borning, "Thinglab--A Constraint-Oriented Simulation Laboratory", Chapter 2, Stanford Computer Science Department Report STAN-CS-79-746 pp. 14-37 (July 1979).